Using Other Keys for Navigation
By default, the edit mode recognizes four keys to use for navigation (<Enter>, <Esc>, <Tab>, and <Shift Tab>). However, there may be cases when other keys will be required for navigation as well (i.e. the up and down arrow keys). If that is the case, the following events and methods must be used…
1. Use the EditInputKey event to identify the new keys being used.
C#
void dbicList1_EditInputKey(object sender, Dbi.WinControl.EditInputKeyEventArgs e)
{
switch (e.KeyData)
{
case Keys.Up: // We are adding a new key
case Keys.Down: // We are adding a new key
e.Handled = true;
break;
}
}
VB.NET
Private Sub dbicList1_EditInputKey(sender As System.Object, e As Dbi.WinControl.EditInputKeyEventArgs) Handles dbicList1.EditInputKey
Select e.KeyData
Case Keys.Up
'We are adding a new key
Case Keys.Down
'We are adding a new key
e.Handled = True
End Select
End Sub
2. Monitor the AfterCellEdit event for those keys, and take the appropriate action when they are pressed. NOTE: Use the EditCell method to put the control back into edit mode.
C#
void dbicList1_AfterCellEdit(object sender, Dbi.WinControl.AfterCellEditEventArgs e)
{
if (e.Key == Keys.Up)
dbicList1.EditCell(e.NodeItem.PrevVisibleNode(), e.ColumnItem);
else if (e.Key == Keys.Down)
dbicList1.EditCell(e.NodeItem.NextVisibleNode(), e.ColumnItem);
}
VB.NET
Private Sub dbicList1_AfterCellEdit(sender As System.Object, e As Dbi.WinControl.AfterCellEditEventArgs) Handles dbicList1.AfterCellEdit
Select e.Key
Case Keys.Up
dbicList1.EditCell(e.NodeItem.PrevVisibleNode(), e.ColumnItem)
Case Keys.Down
dbicList1.EditCell(e.NodeItem.NextVisibleNode(), e.ColumnItem)
End Select
End Sub